package com.zzw.springboot.mapper;

import com.zzw.springboot.bean.StockChange;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 库存变动记录DAO接口
 */
public interface StockChangeMapper {
    /**
     * 添加库存变动记录
     * @param stockChange 变动记录信息
     * @return 影响行数
     */
    int insertStockChange(StockChange stockChange);

    /**
     * 批量添加库存变动记录
     * @param stockChanges 变动记录列表
     * @return 影响行数
     */
    int batchInsertStockChange(List<StockChange> stockChanges);

    /**
     * 根据ID查询库存变动记录
     * @param changeId 变动ID
     * @return 变动记录信息
     */
    StockChange selectStockChangeById(Integer changeId);

    /**
     * 查询库存变动记录列表（带条件）
     * @param stockChange 查询条件
     * @return 变动记录列表
     */
    List<StockChange> selectStockChangeList(StockChange stockChange);

    /**
     * 根据商品ID查询库存变动记录
     * @param productId 商品ID
     * @return 变动记录列表
     */
    List<StockChange> selectStockChangeByProductId(Integer productId);

    /**
     * 根据相关单据查询库存变动记录
     * @param relatedId 相关单据ID
     * @param relatedType 单据类型
     * @return 变动记录列表
     */
    List<StockChange> selectStockChangeByRelated(@Param("relatedId") Integer relatedId, @Param("relatedType") Integer relatedType);
}
